package com.xbongbong.paas.pojo.dto;

import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.saas.enums.CallLogTypeEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

/**
 * @author youli.chen
 * @version v1.0
 * @description: 自动添加跟进记录入参
 * @date 2019/4/3 19:24
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class AutoCommunicateDTO extends BaseDTO {

    /**
     * 话务中心平台，参考CallCenterTypeEnum
     */
    @NotNull(message = "{dto.msg.autoCommunicate.moduleType.NotNull}")
    private Integer moduleType;

    /**
     * 通话类型枚举信息
     */
    private CallLogTypeEnum callLogTypeEnum;

    /**
     * 对象id
     */
    @NotNull(message = "{dto.msg.autoCommunicate.refId.NotNull}")
    private Long refId;

    /**
     * 对象类型，参考XbbRefTypeEnum
     */
    @NotNull(message = "{dto.msg.autoCommunicate.refType.NotNull}")
    private Integer refType;

    /**
     * 响铃开始时间
     */
    @NotNull(message = "{dto.msg.autoCommunicate.startTime.NotNull}")
    private Integer startTime;

    /**
     * 坐席号码
     */
    private String agentPhoneNum;

    /**
     * 另一方号码
     */
    @NotNull(message = "{dto.msg.autoCommunicate.anotherPhoneNum.NotNull}")
    private String anotherPhoneNum;

    /**
     * 通话类型，0: 呼入（度言：INBOUND）；1：呼出（度言：OUTBOUND）
     */
    @NotNull(message = "{dto.msg.autoCommunicate.type.NotNull}")
    @Min(value=0, message = "{dto.msg.autoCommunicate.type.Min}")
    @Max(value=1, message = "{dto.msg.autoCommunicate.type.Max}")
    private Integer type;

    /**
     * 通话时长，秒为单位
     */
    private Integer duration;

    /**
     * 通话结果，1: 成功；0：失败（度言字段 outcome 呼叫结果，SUCCESS: 成功；FAIL：失败）；2：需要同步
     */
    private Integer result;
}
